CMS-2 Programming Language
   HOME

TheInfoList



OR:

CMS-2 is an
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' as ...
s
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
used by the
United States Navy The United States Navy (USN) is the maritime service branch of the United States Armed Forces and one of the eight uniformed services of the United States. It is the largest and most powerful navy in the world, with the estimated tonnage ...
. It was an early attempt to develop a standardized high-level computer programming language intended to improve code portability and reusability. CMS-2 was developed primarily for the US Navy’s tactical data systems ( NTDS). CMS-2 was developed by
RAND Corporation The RAND Corporation (from the phrase "research and development") is an American nonprofit global policy think tank created in 1948 by Douglas Aircraft Company to offer research and analysis to the United States Armed Forces. It is financed ...
in the early 1970s and stands for "Compiler Monitor System". The name "CMS-2" is followed in literature by a letter designating the type of target system. For example, CMS-2M targets Navy 16-bit processors, such as the
AN/AYK-14 The AN/AYK-14(V) is a family of computers for use in military weapons systems. It is a general-purpose 16-bit microprogrammed computer, intended for airborne vehicles and missions. Its modular design provides for common firmware and support softwar ...
.


History

CMS-2 was developed for FCPCPAC (Fleet Computer Programming Center - Pacific) in San Diego, CA. It was implemented by
Computer Sciences Corporation Computer Sciences Corporation (CSC) was an American multinational corporation that provided information technology (IT) services and professional services. On April 3, 2017, it merged with the Enterprise Services line of business of HP Ente ...
in 1968 with design assistance from
Intermetrics AverStar (formerly Intermetrics, Inc.) was a software company founded in Cambridge, Massachusetts in 1969 by several veterans of M.I.T.'s Instrumentation Laboratory who had worked on the software for NASA's Apollo Program including the Apollo ...
. The language continued to be developed, eventually supporting a number of computers including the
AN/UYK-7 The AN/UYK-7 was the standard 32-bit computer of the United States Navy for surface ship and submarine platforms, starting in 1970. It was used in the Navy's NTDS & Aegis combat systems and U.S. Coast Guard, and the navies of U.S. allies. It w ...
and
AN/UYK-43 The AN/UYK-43 was the standard 32-bit computer of the United States Navy for surface ship and submarine platforms, with the first unit delivered in October, 1984. Some 1,250 units were delivered through to 2000. The size of a refrigerator, it replac ...
and UYK-20 and UYK-44 Mark Wilson - personal experience working with UYK-20 and UYK-44 on Aegis ORTS computers.


Language features

CMS-2 was designed to encourage program modularization, permitting independent compilation of portions of a total system. The language is statement oriented. The source is free-form and may be arranged for programming convenience. Data types include fixed-point, floating-point, boolean, character and status. Direct reference to, and manipulation of character and bit strings is permitted. Symbolic machine code may be included, known as direct code.


Program structure

A CMS-2 program is composed of statements. Statements are made up of symbols separated by delimiters. The categories of symbols include operators, identifiers, and constants. The operators are language primitives assigned by the compiler for specific operations or definitions in a program. Identifiers are unique names assigned by the programmer to data units, program elements and statement labels. Constants are known values that may be numeric, Hollerith strings, status values or Boolean. CMS-2 statements are free form and terminated by a dollar sign. A statement label may be placed at the beginning of a statement for reference purposes. A CMS-2 source program is composed of two basic types of statement. Declarative statements provide basic control information to the compiler and define the structure of the data associated with a particular program. Dynamic statements cause the compiler to generate executable machine instructions (object code). Declarative statements defining the data for a program are grouped into units called data designs. Data designs consist of precise definitions for temporary and permanent data storage areas, input areas, output areas and special data units. The dynamic statements that act on data or perform calculations are grouped into procedures. Data designs and procedures are further grouped to form system elements of a CMS-2 program. The compiler combines system elements into a compile time system. A compile time system may stand alone or be part of a larger program.


Data declarative statements

Data declarative statements provide the compiler with information about data element definitions. They define the format, structure and order of data elements in a compile-time system. The three major kinds of data are switches, variables and aggregates.


Switches

Switches provide for the transfer of program control to a specific location in a compile-time system. They contain a set of identifiers or switch points to facilitate program transfers and branches. The switch represents a program address of a statement label or procedure name.


Variables

A variable is a single piece of data. It may consist of one bit, multiple bits or words. A value may be assigned in the variable definition. Variables may hold a constant or changing value. Data types include integers, fix point, floating point, Hollerith character strings, status or Booleans.


Aggregates

Tables hold ordered sets of identically structured information. The common unit of data in a table is an item. Items may be subdivided into fields, the smallest subdivision of a table. Allowable data types contained in fields include integer, fixed point, floating point, Hollerith character string, status or Boolean. An array is an extension of the table concept. The basic structural unit of an array is an item. Array items contain fields as defined by the programmer.


Dynamic statements

Dynamic statements specify processing operations and result in executable code generation by the compiler. A dynamic statement consists of an operator followed by a list of operands and additional operators. An operand may be a single name, a constant, a data-element reference or an expression.


Statement operators

Major CMS-2 operators are summarized below.


Special operators

Special operators facilitate references to data structures and operations on them.


Program structure declarations

The dynamic statements that describe the processing operations of a program are grouped into
blocks of statements In computer programming, a block or code block or block of code is a lexical structure of source code which is grouped together. Blocks consist of one or more declarations and statements. A programming language that permits the creation of bl ...
called procedures.


High level input/output statements

Input/output statements provide communication with hardware devices while running in a non-realtime environment under a monitor system.


Compiler Monitor System 2 (CMS-2)

The Compiler Monitor System 2 (CMS-2) was a system that ran on the UNIVAC CP-642B (
AN/USQ-20 The AN/USQ-20, or CP-642 or Naval Tactical Data System (NTDS), was designed as a more reliable replacement for the Seymour Cray-designed AN/USQ-17 with the same instruction set. The first batch of 17 computers were delivered to the Navy sta ...
). The system software included the
monitor Monitor or monitor may refer to: Places * Monitor, Alberta * Monitor, Indiana, town in the United States * Monitor, Kentucky * Monitor, Oregon, unincorporated community in the United States * Monitor, Washington * Monitor, Logan County, West Vir ...
, compiler, librarian, CP-642 Loader, tape utility and flow charter.


MS-2 monitor

A batch processing operating system that controls execution of CMS-2 components and user jobs run on the CP-642 computer. It provides input/output, software library facilities and debugging tools. Job accounting is also provided.


CMS-2 compiler

A compiler for the CS-1 and CMS-2 languages that generates object code for the CP-642, L-304,
AN/UYK-7 The AN/UYK-7 was the standard 32-bit computer of the United States Navy for surface ship and submarine platforms, starting in 1970. It was used in the Navy's NTDS & Aegis combat systems and U.S. Coast Guard, and the navies of U.S. allies. It w ...
, 1830A and
1218 Year 1218 ( MCCXVIII) was a common year starting on Monday (link will display the full calendar) of the Julian calendar. Events By place Fifth Crusade * May 24 – A Crusader expeditionary force, (some 30,000 men) under King Joh ...
/1219 computers. During the 1970s there were different versions of the CMS-2 compiler, depending on which computer was used to compile the code. Some source code had to be rewritten to work around some functions. And the different versions of CMS-2 had problems with the debugging tools.


XCMS-2 compiler

An extended CMS-2 compiler, adding language features for the AN/UYK-7 computer. It only generates AN/UYK-7 object code.


CMS-2 librarian

A file management system that provides storage and access to source and object code.


CP-642 Object code loaders

Two object code loaders for loading absolute or relocatable object code.


Tape utility

A set of utilities for managing data on magnetic tape.


CMS-2 flowcharter

The flowcharter software processes flowcharter statements in CMS-2 source code and outputs a flowchart to a high-speed printer.


See also

*
Ada Ada may refer to: Places Africa * Ada Foah, a town in Ghana * Ada (Ghana parliament constituency) * Ada, Osun, a town in Nigeria Asia * Ada, Urmia, a village in West Azerbaijan Province, Iran * Ada, Karaman, a village in Karaman Province, Tur ...
*
AN/AYK-14 The AN/AYK-14(V) is a family of computers for use in military weapons systems. It is a general-purpose 16-bit microprogrammed computer, intended for airborne vehicles and missions. Its modular design provides for common firmware and support softwar ...
*
AN/UYK-7 The AN/UYK-7 was the standard 32-bit computer of the United States Navy for surface ship and submarine platforms, starting in 1970. It was used in the Navy's NTDS & Aegis combat systems and U.S. Coast Guard, and the navies of U.S. allies. It w ...
*
AN/UYK-20 The AN/UYK-20 "Data Processing Set" was a ruggedized small computer manufactured by Univac and used by the United States Navy for small and medium-sized shipboard and shore systems built in the 1970s. It featured non-volatile magnetic core memory ...
*
AN/UYK-43 The AN/UYK-43 was the standard 32-bit computer of the United States Navy for surface ship and submarine platforms, with the first unit delivered in October, 1984. Some 1,250 units were delivered through to 2000. The size of a refrigerator, it replac ...
*
AN/UYK-44 The AN/UYK-44 is the standard 16-bit minicomputer of the United States Navy. The AN/UYK-44 was developed in the early 1980s by Sperry Corporation and was completed in early 1984. The AN/UYK-44 was used in surface ships, submarines, ground C4I platfo ...
*
AN/USQ-17 The AN/USQ-17 or Naval Tactical Data System (NTDS) computer referred to in Sperry Rand documents as the Univac M-460, was Seymour Cray's last design for UNIVAC. UNIVAC later released a commercial version, the UNIVAC 490 and that system was later u ...
*
AN/USQ-20 The AN/USQ-20, or CP-642 or Naval Tactical Data System (NTDS), was designed as a more reliable replacement for the Seymour Cray-designed AN/USQ-17 with the same instruction set. The first batch of 17 computers were delivered to the Navy sta ...
*
JOVIAL JOVIAL is a high-level programming language based on ALGOL 58, specialized for developing embedded systems (specialized computer systems designed to perform one or a few dedicated functions, usually embedded as part of a larger, more complete dev ...
*
Naval Tactical Data System Naval Tactical Data System (NTDS) was a computerized information processing system developed by the United States Navy in the 1950s and first deployed in the early 1960s for use in combat ships. It took reports from multiple sensors on different sh ...
*
TACPOL TACPOL (Tactical Procedure Oriented Language) is a block structured programming language developed by the United States Army for the TACFIRE Tactical Fire Direction command and control application. TACPOL is similar to PL/I. Language constructs ...


References


External links


CMS-2Y Programmers Reference Manual for the AN UYK-7 and AN UYK-43 (October 1986)

the Feasibility of Emulating the AN/UYK-7 Computer on the AADC Signal Processing Element

Dictionary of Programming Languages entry for CMS-2
{{DEFAULTSORT:Cms-2 (programming language) Embedded systems Systems programming languages